# 使用 PHP 官方镜像（根据项目需求选择版本）
FROM php:7.4.26-fpm

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    nginx \
    git \
    libzip-dev \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip \
	wget \
    imagemagick \
    libmagickwand-dev \
    && rm -rf /var/lib/apt/lists/*

# 安装 PHP 扩展
RUN docker-php-ext-install \
    pdo_mysql \
    mbstring \
    zip \
    exif \
    pcntl \
    gd \
    sockets \
    bcmath \
	imap \
    opcache

# 安装 Redis 扩展
RUN pecl install  redis && docker-php-ext-enable redis

RUN cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini

#php常用扩展
RUN pecl install xlswriter \
    && echo extension=xlswriter.so >> /usr/local/etc/php/php.ini

RUN pecl install imagick \
    && echo extension=imagick.so >> /usr/local/etc/php/php.ini

# 安装 Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# 配置 Nginx
COPY docker/nginx.conf /etc/nginx/sites-available/default
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
    && ln -sf /dev/stderr /var/log/nginx/error.log

# 设置工作目录
WORKDIR /var/www

# 复制项目文件（优化 Docker 层缓存）
#COPY composer.json composer.lock ./
#RUN composer install --no-dev --no-scripts --no-autoloader --ignore-platform-reqs

# 复制所有代码并生成自动加载
COPY . .
#RUN composer dump-autoload --optimize

# 设置文件权限（根据 ThinkPHP 需求）
#RUN chown -R www-data:www-data /var/www/html \
#    && chmod -R 755 /var/www/html/runtime \
#    && chmod -R 755 /var/www/html/public

# 暴露端口
EXPOSE 80

# 启动脚本（同时启动 PHP-FPM 和 Nginx）
COPY docker/start.sh /start.sh
RUN chmod +x /start.sh
CMD ["/start.sh"]


#docker build -f .\Dockerfile -t demo_tp .
#docker run -d -p 8080:80 -v D:\docker_space\thinkphp\tp:/var/www --name my-thinkphp-app thinkphp-app